home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1995-08-10 | 12.8 KB | 328 lines | [ TEXT/MPS ]
(* File: Collections.mod Contains: Collection Manager Interfaces. Version: Technology: Quickdraw GX 1.0 Package: Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17 Copyright: © 1984-1995 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, use the Apple Bug Reporter stack. Include the file and version information (from above) in the problem description and send to: Internet: apple.bugs.applelink.apple.com AppleLink: APPLE.BUGS *) (*$TAGS-*) (*$CALLING PASCAL*) MODULE Collections; IMPORT SYSTEM, Types; (* $PUSH*) (* $ALIGN MAC68K*) (* $LibExport+*) CONST gestaltCollectionMgrVersion* = LONG("cltn"); (* Collection Manager Error Result Codes... *) collectionItemLockedErr* = -5750; collectionItemNotFoundErr* = -5751; collectionIndexRangeErr* = -5752; collectionVersionErr* = -5753; (* Convenience constants for functions which optionally return values... *) dontWantTag* = 0; dontWantId* = 0; dontWantSize* = 0; dontWantAttributes* = 0; dontWantIndex* = 0; dontWantData* = 0; (* attributes bits *) noCollectionAttributes* = $00000000; (* no attributes bits set *) allCollectionAttributes* = $FFFFFFFF; (* all attributes bits set *) userCollectionAttributes* = $0000FFFF; (* user attributes bits *) defaultCollectionAttributes* = $40000000; (* default attributes - unlocked, persistent *) (* Attribute bits 0 through 15 (entire low word) are reserved for use by the application. Attribute bits 16 through 31 (entire high word) are reserved for use by the Collection Manager. Only bits 31 (collectionLockBit) and 30 (collectionPersistenceBit) currently have meaning. *) collectionUser0Bit* = 0; collectionUser1Bit* = 1; collectionUser2Bit* = 2; collectionUser3Bit* = 3; collectionUser4Bit* = 4; collectionUser5Bit* = 5; collectionUser6Bit* = 6; collectionUser7Bit* = 7; collectionUser8Bit* = 8; collectionUser9Bit* = 9; collectionUser10Bit* = 10; collectionUser11Bit* = 11; collectionUser12Bit* = 12; collectionUser13Bit* = 13; collectionUser14Bit* = 14; collectionUser15Bit* = 15; collectionReserved0Bit* = 16; collectionReserved1Bit* = 17; collectionReserved2Bit* = 18; collectionReserved3Bit* = 19; collectionReserved4Bit* = 20; collectionReserved5Bit* = 21; collectionReserved6Bit* = 22; collectionReserved7Bit* = 23; collectionReserved8Bit* = 24; collectionReserved9Bit* = 25; collectionReserved10Bit* = 26; collectionReserved11Bit* = 27; collectionReserved12Bit* = 28; collectionReserved13Bit* = 29; collectionPersistenceBit* = 30; collectionLockBit* = 31; (* attribute masks *) collectionUser0Mask* = ASH(1,collectionUser0Bit); collectionUser1Mask* = ASH(1,collectionUser1Bit); collectionUser2Mask* = ASH(1,collectionUser2Bit); collectionUser3Mask* = ASH(1,collectionUser3Bit); collectionUser4Mask* = ASH(1,collectionUser4Bit); collectionUser5Mask* = ASH(1,collectionUser5Bit); collectionUser6Mask* = ASH(1,collectionUser6Bit); collectionUser7Mask* = ASH(1,collectionUser7Bit); collectionUser8Mask* = ASH(1,collectionUser8Bit); collectionUser9Mask* = ASH(1,collectionUser9Bit); collectionUser10Mask* = ASH(1,collectionUser10Bit); collectionUser11Mask* = ASH(1,collectionUser11Bit); collectionUser12Mask* = ASH(1,collectionUser12Bit); collectionUser13Mask* = ASH(1,collectionUser13Bit); collectionUser14Mask* = ASH(1,collectionUser14Bit); collectionUser15Mask* = ASH(1,collectionUser15Bit); collectionReserved0Mask* = ASH(1,collectionReserved0Bit); collectionReserved1Mask* = ASH(1,collectionReserved1Bit); collectionReserved2Mask* = ASH(1,collectionReserved2Bit); collectionReserved3Mask* = ASH(1,collectionReserved3Bit); collectionReserved4Mask* = ASH(1,collectionReserved4Bit); collectionReserved5Mask* = ASH(1,collectionReserved5Bit); collectionReserved6Mask* = ASH(1,collectionReserved6Bit); collectionReserved7Mask* = ASH(1,collectionReserved7Bit); collectionReserved8Mask* = ASH(1,collectionReserved8Bit); collectionReserved9Mask* = ASH(1,collectionReserved9Bit); collectionReserved10Mask* = ASH(1,collectionReserved10Bit); collectionReserved11Mask* = ASH(1,collectionReserved11Bit); collectionReserved12Mask* = ASH(1,collectionReserved12Bit); collectionReserved13Mask* = ASH(1,collectionReserved13Bit); collectionPersistenceMask* = ASH(1,collectionPersistenceBit); collectionLockMask* = ASH(1,collectionLockBit); (***********) (* Types *) (***********) (* abstract data type for a collection *) TYPE Collection* = Types.Ptr; CollectionTag* = Types.FourCharCode; CollectionFlattenProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (size: LONGINT; data: (*ΔΔUNIVΔΔ*) Types.Ptr; refCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; CollectionExceptionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (c: Collection; status: Types.OSErr): Types.OSErr; CollectionFlattenUPP* = Types.UniversalProcPtr; CollectionExceptionUPP* = Types.UniversalProcPtr; CONST uppCollectionFlattenProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *) uppCollectionExceptionProcInfo* = $000002E0; (* PROCEDURE (4 byte param, 2 byte param): 2 byte result; *) PROCEDURE NewCollectionFlattenProc*(userRoutine: CollectionFlattenProcPtr): CollectionFlattenUPP; (*$IF NOT GENERATINGCFM *) INLINE PASCAL $2E9F; (*$END*) PROCEDURE NewCollectionExceptionProc*(userRoutine: CollectionExceptionProcPtr): CollectionExceptionUPP; (*$IF NOT GENERATINGCFM *) INLINE PASCAL $2E9F; (*$END*) PROCEDURE CallCollectionFlattenProc*(size: LONGINT; data: (*ΔΔUNIVΔΔ*) Types.Ptr; refCon: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: CollectionFlattenUPP): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $205F, $4E90; (*$END*) PROCEDURE CallCollectionExceptionProc*(c: Collection; status: Types.OSErr; userRoutine: CollectionExceptionUPP): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $205F, $4E90; (*$END*) PROCEDURE NewCollection*(): Collection; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7000, $ABF6; (*$END*) PROCEDURE DisposeCollection*(c: Collection); (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7001, $ABF6; (*$END*) PROCEDURE CloneCollection*(c: Collection): Collection; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7002, $ABF6; (*$END*) PROCEDURE CountCollectionOwners*(c: Collection): LONGINT; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7003, $ABF6; (*$END*) PROCEDURE CopyCollection*(srcCollection: Collection; dstCollection: Collection): Collection; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7004, $ABF6; (*$END*) PROCEDURE GetCollectionDefaultAttributes*(c: Collection): LONGINT; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7005, $ABF6; (*$END*) PROCEDURE SetCollectionDefaultAttributes*(c: Collection; whichAttributes: LONGINT; newAttributes: LONGINT); (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7006, $ABF6; (*$END*) PROCEDURE CountCollectionItems*(c: Collection): LONGINT; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7007, $ABF6; (*$END*) PROCEDURE AddCollectionItem*(c: Collection; tag: CollectionTag; id: LONGINT; itemSize: LONGINT; itemData: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7008, $ABF6; (*$END*) PROCEDURE GetCollectionItem*(c: Collection; tag: CollectionTag; id: LONGINT; VAR itemSize: LONGINT; itemData: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7009, $ABF6; (*$END*) PROCEDURE RemoveCollectionItem*(c: Collection; tag: CollectionTag; id: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700A, $ABF6; (*$END*) PROCEDURE SetCollectionItemInfo*(c: Collection; tag: CollectionTag; id: LONGINT; whichAttributes: LONGINT; newAttributes: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700B, $ABF6; (*$END*) PROCEDURE GetCollectionItemInfo*(c: Collection; tag: CollectionTag; id: LONGINT; VAR index: LONGINT; VAR itemSize: LONGINT; VAR attributes: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700C, $ABF6; (*$END*) PROCEDURE ReplaceIndexedCollectionItem*(c: Collection; index: LONGINT; itemSize: LONGINT; itemData: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700D, $ABF6; (*$END*) PROCEDURE GetIndexedCollectionItem*(c: Collection; index: LONGINT; VAR itemSize: LONGINT; itemData: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700E, $ABF6; (*$END*) PROCEDURE RemoveIndexedCollectionItem*(c: Collection; index: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $700F, $ABF6; (*$END*) PROCEDURE SetIndexedCollectionItemInfo*(c: Collection; index: LONGINT; whichAttributes: LONGINT; newAttributes: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7010, $ABF6; (*$END*) PROCEDURE GetIndexedCollectionItemInfo*(c: Collection; index: LONGINT; VAR tag: CollectionTag; VAR id: LONGINT; VAR itemSize: LONGINT; VAR attributes: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7011, $ABF6; (*$END*) PROCEDURE CollectionTagExists*(c: Collection; tag: CollectionTag): BOOLEAN; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7012, $ABF6; (*$END*) PROCEDURE CountCollectionTags*(c: Collection): LONGINT; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7013, $ABF6; (*$END*) PROCEDURE GetIndexedCollectionTag*(c: Collection; tagIndex: LONGINT; VAR tag: CollectionTag): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7014, $ABF6; (*$END*) PROCEDURE CountTaggedCollectionItems*(c: Collection; tag: CollectionTag): LONGINT; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7015, $ABF6; (*$END*) PROCEDURE GetTaggedCollectionItem*(c: Collection; tag: CollectionTag; whichItem: LONGINT; VAR itemSize: LONGINT; itemData: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7016, $ABF6; (*$END*) PROCEDURE GetTaggedCollectionItemInfo*(c: Collection; tag: CollectionTag; whichItem: LONGINT; VAR id: LONGINT; VAR index: LONGINT; VAR itemSize: LONGINT; VAR attributes: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7017, $ABF6; (*$END*) PROCEDURE PurgeCollection*(c: Collection; whichAttributes: LONGINT; matchingAttributes: LONGINT); (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7018, $ABF6; (*$END*) PROCEDURE PurgeCollectionTag*(c: Collection; tag: CollectionTag); (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7019, $ABF6; (*$END*) PROCEDURE EmptyCollection*(c: Collection); (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701A, $ABF6; (*$END*) PROCEDURE FlattenCollection*(c: Collection; flattenProc: CollectionFlattenUPP; refCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701B, $ABF6; (*$END*) PROCEDURE FlattenPartialCollection*(c: Collection; flattenProc: CollectionFlattenUPP; refCon: (*ΔΔUNIVΔΔ*) Types.Ptr; whichAttributes: LONGINT; matchingAttributes: LONGINT): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701C, $ABF6; (*$END*) PROCEDURE UnflattenCollection*(c: Collection; flattenProc: CollectionFlattenUPP; refCon: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701D, $ABF6; (*$END*) PROCEDURE GetCollectionExceptionProc*(c: Collection): CollectionExceptionUPP; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701E, $ABF6; (*$END*) PROCEDURE SetCollectionExceptionProc*(c: Collection; exceptionProc: CollectionExceptionUPP); (*$IF NOT GENERATINGCFM*) INLINE PASCAL $701F, $ABF6; (*$END*) (*****************************************************************************************) (* Utility Routines for handle-based access... *) (*****************************************************************************************) PROCEDURE GetNewCollection*(collectionID: INTEGER): Collection; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7020, $ABF6; (*$END*) PROCEDURE AddCollectionItemHdl*(aCollection: Collection; tag: CollectionTag; id: LONGINT; itemData: Types.Handle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7021, $ABF6; (*$END*) PROCEDURE GetCollectionItemHdl*(aCollection: Collection; tag: CollectionTag; id: LONGINT; itemData: Types.Handle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7022, $ABF6; (*$END*) PROCEDURE ReplaceIndexedCollectionItemHdl*(aCollection: Collection; index: LONGINT; itemData: Types.Handle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7023, $ABF6; (*$END*) PROCEDURE GetIndexedCollectionItemHdl*(aCollection: Collection; index: LONGINT; itemData: Types.Handle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7024, $ABF6; (*$END*) PROCEDURE FlattenCollectionToHdl*(aCollection: Collection; flattened: Types.Handle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7025, $ABF6; (*$END*) PROCEDURE UnflattenCollectionFromHdl*(aCollection: Collection; flattened: Types.Handle): Types.OSErr; (*$IF NOT GENERATINGCFM*) INLINE PASCAL $7026, $ABF6; (*$END*) (* $ALIGN RESET*) (* $POP*) END Collections.